Natural language processing systems typically derive meaning from human or natural language input using algorithms based on statistical inference. Natural language processing systems typically perform a “training” stage in which learning models automatically learn domain rules by analyzing a large corpora of documents and generating a knowledge base from which to access.
The learning models may execute syntactic analysis or semantic analysis at various levels during the training process. For syntactic analysis, the learning models utilize algorithms to predict part-of-speech tags for words in a given sentence (e.g., noun, verb, adjective), as well as the various relationships between the different words (e.g., subject, object and other modifiers). Semantic analysis involves using algorithms for noun-phrase extraction, tagging the extracted noun-phrases (e.g., person, organization, location, common noun, etc.), clustering noun-phrases referring to the same entity, resolving mentions of entities in documents against entities in the knowledge base, relation and knowledge extraction, etc. Once the natural language processing system completes the training stage, the natural language processing system answers questions, provides information to a user, and performs other tasks based upon the learning models and the generated knowledge base.